package com.wmh.baseservice.user.service;

import com.alibaba.fastjson.JSONObject;
import com.wmh.baseservice.common.mybatisplus.methods.CommonService;
import com.wmh.baseservice.user.pojo.UsInfo;
import com.wmh.baseservice.user.pojo.vo.UsInfoRespVO;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.math.BigDecimal;
import java.util.List;

/**
 * @author mmx generator
 * @since 2021-07-23
 */
public interface UsInfoService extends CommonService<UsInfo> {

    /**
     * wechat用戶登錄
     */
    JSONObject login(String openid, Long parentId);

    /**
     * 用户当月邀请入驻的商家
     */
    List<Long> promoteCommission(Long id);

    /**
     * 根据用户id查询头像url和昵称
     * @param usId 用户id
     * @return 返回用户头像url和昵称
     */
    UsInfoRespVO getAvatarAndNickByUsId(Long usId);

    /**
     * 编辑个人信息
     *
     * @param nick   昵称
     * @param avatar 头像
     * @param phone  电话
     * @param usId   用户id
     */
    void editUsInfo(String nick, MultipartFile avatar, String phone, Long usId) throws IOException;

    /**
     * 检查用户是否为新用户（头像和昵称是否都为空）
     * @param usId 用户ID
     * @return 如果头像和昵称都为空，返回 false, 否则返回 true
     */
    Boolean isNewUser(Long usId);

    /**
     * 设置用户头像
     * @param usId 用户id
     * @param imgUrl 头像图片url
     */
    void setUserAvatar(Long usId, String imgUrl);

    /**
     * 根据用户id查询余额
     * @param usId 用户id
     * @return 返回用户余额
     */
    BigDecimal getBalanceById(Long usId);
}
